package com.hskn.hss.module.worklog.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hskn.hss.core.domain.AjaxResult;
import com.hskn.hss.exception.HssException;
import com.hskn.hss.module.worklog.dto.InChargeSubjectDTO;
import com.hskn.hss.module.worklog.entity.WorkLog;
import com.hskn.hss.module.worklog.to.AncientGardenTreesTO;
import com.hskn.hss.module.worklog.to.JobLogExportTO;
import com.hskn.hss.module.worklog.vo.*;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author hskn
 * @since 2021-05-19
 */
public interface IWorkLogService extends IService<WorkLog> {

    JSONObject mList(JSONObject params) throws HssException;

    List<JobLogExportCarExcelVO> selectCarWorkLogList(JobLogExportTO jobLogExportTO);

    List<JobLogExportPersonExcelVO> selectPersonWorkLogList(JobLogExportTO jobLogExportTO);

    List<JobLogExportFacExcelVO> selectFacWorkLogList(JobLogExportTO jobLogExportTO);

    List<JobLogExportGardenExcelVO> selectGarWorkLogList(AncientGardenTreesTO ancientGardenTreesTO);

    List<JobLogExportTreeExcelVO> selectTreeWorkLogList(AncientGardenTreesTO ancientGardenTreesTO);

    AjaxResult listById(Map<String, Object> map) throws HssException;

    JSONObject rList(JSONObject params) throws HssException;

    void mUpdate(JSONObject params) throws HssException;

    @Transactional
    void add(WorkLog workLog) throws HssException;

    List<InChargeSubjectDTO> getPersonChargeSubject(String personId);

    void del(JSONObject params) throws HssException;

    void revoke(JSONObject params) throws HssException;
}
